An operating system is a fundamental component of some computer systems. Among other things, an operating system manages interactions between a computer system's hardware and software programs that operate on the computer system. The operating system can also provide a user interface that a user (e.g., a human operator) uses to interact with the computer system and software applications. An operating system executed by and interacting with a particular computer system can be said to be “running on” or “running within” the particular computer system. The computer system that an operating system runs on need not be a physical computer system. An operating system can also run on a software simulation of a computer system, sometimes called a virtual machine. Sometimes, a first operating system running on physical computer hardware executes a virtual machine, and a second operating system runs on the virtual machine. The first type of operating system can be called a “host operating system” and the second type of operating system is an example of a “guest operating system.”
An operating system is prone to failures. A failure may be a temporary failure. For example, a software program running on the operating system may execute an instruction in a manner unexpected by the operating system, causing an error condition in the operating system. This may manifest itself as an “operating system crash” and require rebooting of the operating system, or in more severe situations the operating system to be erased from memory, entered back into memory, and re-executed.
A failure may be an ongoing failure. For example, a software program may modify the operating system causing the operating system to behave differently than as designed. The modification could be unintentional, e.g., a software program causes a change in the operating system that has unintended consequences. The modification may be intentional, e.g., a malicious software program such as a virus causes a harmful modification to the operating system.
An operating system may be changed (sometimes often) over a period of time by updates and upgrades that are provided by the manufacturer or other source and that modify the code of the operating system. These updates and upgrades are often made in response to changes in hardware of the computer system that the operating system may run on, or to make the operating system more resistant to malicious software that targets the operation of the operating system, or to provide additional features, or to achieve combinations of those objectives. Many of the features provided by an operating system to application software and to the user make use of hardware facilities of the computer system on which the operating system runs.